#ifndef _MYSYSTICK_H
#define _MYSYSTICK_H

//使用定时器实现精准延时测试程序   V1.0           修改日期：2025/6/16
//实现功能：每5s打印一次信息
//By:TAO XIN YU (陶鑫宇)

#include "gd32e230.h"                   // Device header
#include "MyUart.h"

//*********************************************************//
//定时器通道   GPIOA区
#define TIMER0_BRKIN_PIN			 GPIO_PIN_6
#define TIMER0_CH0_ON_PIN			 GPIO_PIN_7
#define TIMER0_CH0_PIN			 	 GPIO_PIN_8
#define TIMER0_CH1_PIN			 	 GPIO_PIN_9
#define TIMER0_CH2_PIN			 	 GPIO_PIN_10
#define TIMER0_CH3_PIN			 	 GPIO_PIN_11
#define TIMER0_ETI_PIN			 	 GPIO_PIN_12

#define TIMER2_CH0_PIN				 GPIO_PIN_6
#define TIMER2_CH1_PIN				 GPIO_PIN_7

#define TIMER13_CH0_PIN				 GPIO_PIN_4
//#define TIMER13_CH0_PIN				 GPIO_PIN_6

#define TIMER14_CH0_ON_PIN     GPIO_PIN_1
#define TIMER14_CH0_PIN				 GPIO_PIN_2
#define TIMER14_CH1_PIN				 GPIO_PIN_3
#define TIMER14_BRKIN_PIN			 GPIO_PIN_9

#define TIMER15_CH0_PIN				 GPIO_PIN_6

#define TIMER16_CH0_PIN				 GPIO_PIN_7
#define TIMER16_BRKIN_PIN      GPIO_PIN_10

//*********************************************************//
//定时器通道   GPIOB区
#define TIMER0_CH1_ON_PIN			 GPIO_PIN_0
#define TIMER0_CH2_ON_PIN			 GPIO_PIN_1

//#define TIMER2_CH0_PIN			 	 GPIO_PIN_4
//#define TIMER2_CH1_PIN				 GPIO_PIN_5
#define TIMER2_CH2_PIN			 	 GPIO_PIN_0
#define TIMER2_CH3_PIN				 GPIO_PIN_1

//#define TIMER13_CH0_PIN			 	 GPIO_PIN_1

#define TIMER15_BRKIN_PIN			 GPIO_PIN_5
#define TIMER15_CH0_ON_PIN			 GPIO_PIN_6

//#define TIMER16_BRKIN_PIN			 GPIO_PIN_4
#define TIMER16_CH0_ON_PIN			 GPIO_PIN_7


//当前使用的定时器时钟
#define MySystick_RCU_Timerx 		RCU_TIMER16 
//当前使用的定时器
#define MySystick_Timerx 				TIMER16
//当前使用的定时器中断
#define MySystick_Timerx_IRQn 	TIMER16_IRQn


//初始化滴答定时器(自定义)
void MySystick_init(void);

//Us延迟函数
//参数：xus ：需要延迟的微秒数
//无返回值
void MyDelay_us(unsigned int xus);

//Ms延迟函数
//参数：xms ：需要延迟的毫秒数
//无返回值
void MyDelay_ms(unsigned int xms);

//S延迟函数
//参数：xs ：需要延迟的秒数
//无返回值
void MyDelay_s(unsigned int xs);

#endif